SpringBoot MyBatis 实现分页查询数据【SpringBoot系列4】 | 您所在的位置:网站首页 › springboot 分页查询 › SpringBoot MyBatis 实现分页查询数据【SpringBoot系列4】 |
SpringCloud 大型系列课程正在制作中,欢迎大家关注与提意见。 程序员每天的CV 与 板砖,也要知其所以然,本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCloud 微服务系列项目开发. 1 项目准备SpringBoot项目创建【SpringBoot系列1】 SpringBoot 集成 MyBatis 框架 【SpringBoot系列2】 SpringBoot 集成 Druid 数据源【SpringBoot系列3 2 分页插件pagehelper是一个mybatis的分页插件,首先在 pom.xml 文件中添加分页插件依赖包。 com.github.pagehelper pagehelper-spring-boot-starter 1.4.6然后在 application.yml 配置文件中添加分页插件有关的配置。 pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql3 PageResult 与 PageRequest 、PageUtils定义分页请求体,主要是用于当前请求的是第几页数据以及每页数据加载多少条 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; /** * 分页请求 */ @Data @ToString @AllArgsConstructor @NoArgsConstructor public class PageRequest { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; }定义分页返回结果集 PageResult import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import java.util.List; /** * 分页返回结果 */ @Data @ToString @AllArgsConstructor @NoArgsConstructor public class PageResult { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; /** * 记录总数 */ private long totalSize; /** * 页码总数 */ private int totalPages; /** * 数据模型 */ private List content; }PageUtils 将分页信息封装到统一的接口 import com.github.pagehelper.PageInfo; public class PageUtils { public static PageResult getPageResult(PageRequest pageRequest, PageInfo pageInfo) { PageResult pageResult = new PageResult(); pageResult.setPageNum(pageInfo.getPageNum()); pageResult.setPageSize(pageInfo.getPageSize()); pageResult.setTotalSize(pageInfo.getTotal()); pageResult.setTotalPages(pageInfo.getPages()); pageResult.setContent(pageInfo.getList()); return pageResult; } }4 实现分页请求首先是 UserController 中 @Api(tags="用户模块") @RestController @RequestMapping("user") public class UserController { @Resource private UserService userService; @PostMapping(value="/findPage") @ApiOperation(value = "分页查询") public Object findPage(@RequestBody PageRequest pageQuery) { return userService.findPage(pageQuery); } }UserService.java public interface UserService { PageResult findPage(PageRequest pageRequest); }UserServiceImpl.java @Service public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public PageResult findPage(PageRequest pageRequest) { return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest)); } /** * 调用分页插件完成分页 * @return */ private PageInfo getPageInfo(PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); PageHelper.startPage(pageNum, pageSize); List userInfoList = userMapper.selectPage(); return new PageInfo(userInfoList); } }UserMapper.java public interface UserMapper { List selectList(); /** * 分页查询用户 * @return */ List selectPage(); }UserMapper.xml select id, user_name, user_age, create_time from t_user select id, user_name, user_age, create_time from t_user然后在postman中执行请求,已可以实现分页请求 项目源码在这里 :早起的年轻人/SpringBootStudy 有兴趣可以关注一下公众号:biglead |
CopyRight 2018-2019 实验室设备网 版权所有 |